using System;
using System.Collections.Generic;
using System.Text;

namespace BancoX.Dominio
{
    public class Cliente
    {
        #region Propiedades
        private long _id;

        public long Id
        {
            get { return _id; }
            set { _id = value; }
        }

        private string _email;

        public string Email
        {
            get { return _email; }
            set { _email = value; }
        }


        private string _dni;

        public string Dni
        {
            get { return _dni; }
            protected set { _dni = value; }
        }

        private string _clave;

        protected string Clave
        {
            set { _clave = value; }
            get { return _clave; }
        }


        private List<CuentaBancaria> _cuentas;

        public List<CuentaBancaria> Cuentas
        {
            get { return _cuentas; }
            set { _cuentas = value; }
        }


        private bool _bloqueado = false;

        public bool EstaBloqueado
        {
            get { return _bloqueado; }
        }
        #endregion Propiedades

        public Cliente(string dni, string clave)
        {
            Dni = dni;
            Clave = Hash(clave);
            Cuentas = new List<CuentaBancaria>();
        }

        public static string Hash(string texto)
        {
            return texto + texto;
        }

        public bool EsClaveCorrecta(string clave)
        {
            clave = Hash(clave);
            return Clave.Equals(clave);
        }

        public void Bloquear()
        {
            _bloqueado = true;
        }
    }
}
